package cn.dt70.utils;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class ActiveMQ {

    public void sendMail() throws Exception{
        //1、创建工厂链接 对象 ，   IP 和 端口默认 61616
        ConnectionFactory connectionFactory;
        connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
        //2、创建链接
        Connection connection = connectionFactory.createConnection();
        //3、开启链接
        connection.start();
        //4、使用链接创建会话对象
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        //5、使用绘画 对象  创建  队列（一对一）
        Queue queue = session.createQueue("Mail");
        //6、创建生产者对象
        MessageProducer producer = session.createProducer(queue);
        //7、往 队列中 添加 消息,产生消息对象
        TextMessage message = session.createTextMessage("hello!javaMail");
        //8、用生产者  发送发小
        producer.send(message);
        //9、关闭资源
        producer.close();
        session.close();
        connection.close();
    }

    public void receiveMail() throws Exception{
        //1、创建工厂链接 对象 ，   IP 和 端口默认 61616
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");
        //2、创建链接
        Connection connection = connectionFactory.createConnection();
        //3、开启链接
        connection.start();
        //4、使用链接创建会话对象
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        //5、使用绘画 对象  创建  队列（一对一）
        Queue queue = session.createQueue("Mail");
        //6、创建消费者对象
        MessageConsumer consumer = session.createConsumer(queue);
        //7、向  consumer 对象中 设置  一个 messageListener对象 ，用来接受消息
        consumer.setMessageListener(new MessageListener() {

            @Override
            public void onMessage(Message message) {
                //将 信息转换成  文本信息
                TextMessage textMessage	=(TextMessage)message;
                try {
                    System.out.println(textMessage.getText());
                } catch (JMSException e) {
                    e.printStackTrace();
                }
            }
        });
        //8、程序等 接受 用户消息
        System.in.read();
        //9、关闭资源
        consumer.close();
        session.close();
        connection.close();
    }
}


